package com.edgar.designpattern.abstractfactory.pizzastore;

import com.edgar.designpattern.abstractfactory.pizzastore.product.Cheese;
import com.edgar.designpattern.abstractfactory.pizzastore.product.Clam;
import com.edgar.designpattern.abstractfactory.pizzastore.product.Daugh;
import com.edgar.designpattern.abstractfactory.pizzastore.product.FreshClam;
import com.edgar.designpattern.abstractfactory.pizzastore.product.Garlic;
import com.edgar.designpattern.abstractfactory.pizzastore.product.MarinaraSauce;
import com.edgar.designpattern.abstractfactory.pizzastore.product.Mushroom;
import com.edgar.designpattern.abstractfactory.pizzastore.product.Onion;
import com.edgar.designpattern.abstractfactory.pizzastore.product.Pepperoni;
import com.edgar.designpattern.abstractfactory.pizzastore.product.RedPepper;
import com.edgar.designpattern.abstractfactory.pizzastore.product.ReggianoCheese;
import com.edgar.designpattern.abstractfactory.pizzastore.product.Sauce;
import com.edgar.designpattern.abstractfactory.pizzastore.product.SlicePepperoni;
import com.edgar.designpattern.abstractfactory.pizzastore.product.ThinCrustDaugh;
import com.edgar.designpattern.abstractfactory.pizzastore.product.Veggies;

public class NYPizzaIngredientFactory implements PizzaIngredientFactory {

	@Override
	public Daugh createDaugh() {
		return new ThinCrustDaugh();
	}

	@Override
	public Clam createClam() {
		return new FreshClam();
	}

	@Override
	public Sauce createSauce() {
		return new MarinaraSauce();
	}

	@Override
	public Cheese createCheese() {
		return new ReggianoCheese();
	}

	@Override
	public Pepperoni createPepperoni() {
		return new SlicePepperoni();
	}

	@Override
	public Veggies[] createVeggies() {
		return new Veggies[] { new Garlic(), new Onion(), new Mushroom(),
				new RedPepper() };
	}

}